package com.zmn.oms.persistence.interfaces.conf.channel;


import com.zmn.oms.model.entity.conf.channel.ConfOrderChannel;
import com.zmn.oms.model.entity.conf.channel.ConfOrderChannelQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 渠道订单配置表
 *
 * @author linfeng
 * @since 2020/10/30 11:45
 */
public interface ConfOrderChannelDao {

	/**
	 * 查询
	 *
	 * @param channelId ID
	 * @return
	 */
	ConfOrderChannel findByKey(Integer channelId);

	/**
	 * 分页搜索
	 *
	 * @param query 条件
	 * @return 列表
	 */
	List<ConfOrderChannel> listPageByQuery(ConfOrderChannelQuery query);

	/**
	 * 搜索
	 *
	 * @param query 条件
	 * @return
	 */
	List<ConfOrderChannel> listByQuery(ConfOrderChannelQuery query);

	/**
	 * 所有数据
	 *
	 * @return
	 */
	List<ConfOrderChannel> listAll();

	/**
	 * 统计
	 *
	 * @param query 条件
	 * @return
	 */
	Integer countByQuery(ConfOrderChannelQuery query);

	/**
	 * 更新
	 *
	 * @param confOrderChannel
	 * @return
	 */
	Integer updateByKey(ConfOrderChannel confOrderChannel);

	/**
	 * 插入
	 *
	 * @param confOrderChannel
	 * @return
	 */
	Integer insert(ConfOrderChannel confOrderChannel);

	/**
	 * 删除
	 *
	 * @param channelId ID
	 * @return
	 */
	Integer deleteByKey(Integer channelId);

	/**
	 * 根据渠道id集合删除数据
	 *
	 * @param channelIds ID
	 * @return
	 */
	Integer deleteByChannelIds(@Param("channelIds") List<Integer> channelIds);

	/**
	 * 描述: 从旧渠道复制到新渠道
	 *
	 * @param originalChannelId 原渠道ID
	 * @param targetChannelId   新渠道ID
	 * @param operator          操作者
	 * @return java.lang.Boolean
	 * @author guoqiao
	 * @since 2021/6/8 13:49
	 */
	void copy(Integer originalChannelId, int targetChannelId, String operator);
}
